#include <iostream>
#include <string>

using namespace std;
/**
 作者： 杨老师

 title: 景点排队
 
 title_description: 我们知道，景点排队的时候都有优先通道，方便老人不用长时间的等待。
 					请你编写一个程序，将排队的人按照以下原则排出入场的先后顺序： 
					 1. 老年人（年龄 >= 60岁）比非老年人优先入场。
					 2. 老年人按年龄从大到小的顺序入场，年龄相同的按登记的先后顺序入场。 
					 3. 非老年人按登记的先后顺序入场。
  
  input_description: 第1行，输入一个小于100的正整数，表示排队的人数；后面按照登记的先后顺序，每行输入一个排队人员的信息，
  					 包括：一个长度小于10的字符串表示排队的人的ID（每个人的ID各不相同且只含数字和字母），
					       一个整数表示排队的人的年龄，中间用单个空格隔开
  output_description: 按排好的顺序输出每个人的ID，每行一个。
  
  eg:
      5
		021075 40
		004003 15
		010158 67
		021033 75
		102012 30
		
		021033
		010158
		021075
		004003
		102012
*/
struct perpor{
    string id;
    int age;
    int no;
}o[105],y[105],oo,yy;

int main(){
    int n,nl,o_i=0,y_i=0;
    string bh;
    cin >> n;
    for (int i = 1; i <= n ; i++) {
        cin >> bh >> nl;
        if(nl>=60){
        	o_i++; 
            o[o_i].id=bh;
            o[o_i].age = nl;
            o[o_i].no=o_i;
        }else{
        	
        	y_i++;
            y[y_i].id=bh;
            y[y_i].age = nl;
            y[y_i].no=y_i;
        }
    }
    
    // 遍历循环取老年组
    for (int i = 1; i < o_i;i++){
      for (int j = i+1; j <= o_i; j++) {
           // 1. 判断年龄大小，做排序
           if(o[i].age<o[j].age){
               oo = o[i];
               o[i]= o[j];
               o[j] = oo;
           }
           // 2. 年龄相同，判断顺序先后 
           else if(o[i].age==o[j].age){
             // 3. 判断顺序先后
             if(o[i].no > o[j].no){
               oo = o[i];
               o[i] = o[j];
               o[j] = oo;
             }
           }
          
        }
      
    }
  // 遍历循环取年轻组
     for (int i = 1; i < n;i++){
           for(int j=i+1;j<=n;j++){
                if(o[i].age==o[j].age){
                 // 3. 判断顺序先后
                  if(o[i].no > o[j].no){
                       int temp = o[j].no;
                       o[j].no = o[i].no;
                       o[i].no = temp;
                  }
                }
           }
        }
         for (int i = 1; i <= o_i;i++){
              cout << o[i].id<<endl;
         }
        for (int i = 1; i <= y_i;i++){
              cout << y[i].id<<endl;
        }
    return  0;
}
